if entity.name in ["func_door_rotating:b","func_platrot:b","func_rotating:b","func_rot_button:b","func_pendulum:b","func_trackautochange:b","func_trackchange:b","momentary_rot_button:b"]:
if entity.name == "func_rotating:b":
self.showoriginline(entity,4,8,view,rotcolor) # func_rotating has different bitvalues for X-axis and Y-axis
else:
self.showoriginline(entity,64,128,view,rotcolor)
elif entity.name in ["func_tank:b","func_tanklaser:b","func_tankmortar:b","func_tankrocket:b"]:
orgpos = self.showoriginline(entity,0,0,view,rotcolor) # Tanks always rotate around Z-axis
# I need an canvas.arc() drawing-function so I can display the yaw/pitch range of the tank.
if orgpos is not None:
try:
by = int(entity["barrely"])
except:
by = 0
try:
bz = int(entity["barrelz"])
except:
bz = 0
try:
bx = int(entity["barrel"])
except:
bx = 0
try:
brly = orgpos + quarkx.vect(0, by, 0)
brlz = brly + quarkx.vect(0, 0, bz)
brlx = brlz + quarkx.vect(bx, 0, 0)
cv = view.canvas()
cv.pencolor = passcolor
cv.penwidth = 3 # So it the barrel pos gets more visual
vpos1, vpos2 = view.proj(orgpos), view.proj(brly)
cv.line(vpos1, vpos2)
vpos1, vpos2 = view.proj(brly), view.proj(brlz)
cv.line(vpos1, vpos2)
vpos1, vpos2 = view.proj(brlz), view.proj(brlx)
cv.line(vpos1, vpos2)
except:
pass
elif entity.name == "func_tracktrain:b":
orgpos = self.showoriginline(entity,0,0,view,rotcolor) # TrackTrain always rotate around Z-axis
if orgpos is not None:
try:
wheelsdist = int(entity["wheels"]) / 2
except:
wheeldist = 0
try:
heightdist = int(entity["height"])
except:
heightdist = 0
try:
heit = orgpos - quarkx.vect(0, 0, heightdist)
whlxA = heit - quarkx.vect(0, wheelsdist, 0)
whlxB = heit + quarkx.vect(0, wheelsdist, 0)
whlAyA = whlxA - quarkx.vect(16,0,0)
whlAyB = whlxA + quarkx.vect(16,0,0)
whlByA = whlxB - quarkx.vect(16,0,0)
whlByB = whlxB + quarkx.vect(16,0,0)
cv = view.canvas()
cv.pencolor = 0x000000
cv.penwidth = 3 # So it the wheeldist gets more visual